package com.hanserwei.springbootlearn;

import lombok.Getter;

/**
 * 表示用户角色的枚举类。
 * 与数据库中 homework.role 表的角色相对应。
 */
@Getter
public enum UserRoleEnum {
    /**
     * 管理员角色
     */
    ADMIN(1, "管理员"),
    /**
     * 普通用户角色
     */
    NORMAL_USER(2, "普通用户"),
    /**
     * VIP用户角色
     */
    VIP_USER(3, "VIP用户"),
    /**
     * 访客角色
     */
    GUEST(4, "访客");

    private final int id;
    private final String roleName;

    UserRoleEnum(int id, String roleName) {
        this.id = id;
        this.roleName = roleName;
    }

    /**
     * 根据ID获取对应的UserRole枚举实例。
     *
     * @param id 角色ID
     * @return 对应的UserRole实例，如果未找到则返回null
     */
    public static UserRoleEnum fromId(int id) {
        for (UserRoleEnum role : UserRoleEnum.values()) {
            if (role.getId() == id) {
                return role;
            }
        }
        return null;
    }

    /**
     * 根据角色名称获取对应的UserRole枚举实例。
     *
     * @param roleName 角色名称
     * @return 对应的UserRole实例，如果未找到则返回null
     */
    public static UserRoleEnum fromRoleName(String roleName) {
        for (UserRoleEnum role : UserRoleEnum.values()) {
            if (role.getRoleName().equals(roleName)) {
                return role;
            }
        }
        return null;
    }

}
